home *** CD-ROM | disk | FTP | other *** search
/ Over 1,000 Windows 95 Programs / Over 1000 Windows 95 Programs (Microforum) (Disc 1).iso / 1145 / n4pass.txt < prev    next >
Text File  |  1997-04-17  |  54KB  |  1,170 lines

  1. Version 1.31     January 31, 97
  2. = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
  3.  
  4.  NNNN   NNN  444  444   PPPPPPPPP    AAAAAAAA   SSSSSSSSSS  SSSSSSSSSS
  5.  NNNNN  NNN  444  444   PPP    PPP  AAA    AAA  SSS         SSS
  6.  NNNNNNNNNN  444444444  PPPPPPPPP   AAAAAAAAAA  SSSSSSSSSS  SSSSSSSSSS
  7.  NNN  NNNNN       444   PPP         AAA    AAA         SSS         SSS
  8.  NNN   NNNN       444   PPP         AAA    AAA  SSSSSSSSSS  SSSSSSSSSS
  9.  
  10.  
  11. Please send bug reports (or suggestions) to:
  12.    Compuserve:    75600, 2274    
  13.    Internet:      DCOLLINS@FASTLANE.NET
  14.  
  15. You can find the latest versions at:
  16.    Compuserve:    forum NOVUSER     FileName:  N4PAxx.*
  17.    Internet:      web page   http://www.fastlane.net/homepages/dcollins
  18.  
  19.  
  20. Please see NDS-LIST.TXT for information on more utilities.
  21.  
  22. = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
  23. = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
  24. = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
  25.  
  26. Basic rules are:
  27.  
  28.   You need to run DS.NLM version 4.89a  Aug 30,1995 or later.
  29.  
  30.   Verify that you set the TZ environment variable on your workstation.
  31.       Example:  SET TZ=CST6CDT   for Central Standard Time.
  32.  
  33.   Verify that you have  SET NWLANGUAGE=ENGLISH
  34.  
  35.   You should have your NLS and Unicode files properly installed.  Normally,
  36.   you can find these files under the NLS subdirectory on your C: drive,
  37.   and also the SYS:\PUBLIC\NLS subdirectories.
  38.  
  39.   The utilities have been tested on:
  40.     Server:
  41.       Netware 4.10 (DS.NLM v4.89a or later)
  42.       Netware 4.11.
  43.     Workstation:
  44.       DOS 5.0 - DOS 6.22 with Netware VLM 1.2 drivers,
  45.       Windows 95 with Novell Client32.
  46.       Windows 3.1x with VLM 1.2 drivers.
  47.  
  48.  
  49. = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
  50. = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
  51.  
  52.  
  53. Application:
  54. ============
  55.  
  56.    This utility is designed for the Helpdesk staff to view network user
  57.    information relating to security and the capability to 'reset' the user
  58.    password.  It is specifically designed for a Netware 4.10 network.
  59.  
  60.    It is composed of two parts:
  61.    Server   - N4PASS.NLM that will run on the server which will do the
  62.               real work for searching for users, reading attribute names
  63.               and values, and changing the user's password.
  64.    Client   - N4PASS.EXE that will run on the Helpdesk's workstation.
  65.               It is Windows based, and is the 'frontend' for the tasks
  66.               that the helpdesk wants done.
  67.  
  68.    Communication method:
  69.  
  70.    A common subdirectory that is used for transferring information
  71.    between the server and the client.  This method makes its 'protocal
  72.    less' and 'platform less' since the Client piece can be running on
  73.    a Macintosh, Unix, or via a smart email agent... running the standard
  74.    IPX/SPX, TCP/IP or other protocals.
  75.  
  76.  
  77. Registration:
  78. =============
  79.  
  80.    This software is freeware.  It is created to help network administrators
  81.    'empower' the helpdesk staff.  Please be patient with any problems
  82.    that you encounter with this utility.
  83.    Here is a thought... if this utility has saved you alot of time, perhaps
  84.    you can send me a company T-shirt, postcard or something.
  85.  
  86.    If you are interested in the source code, then please send $50 (US Dollars)
  87.    to:   N4PASS source code; 1216 Hilburn Ct; Irving, TX; 75060; USA
  88.  
  89.    N4PASS.EXE  - written in MS Visual Basic 4.0 (16bit)
  90.    N4PASS.NLM - written in Watcom C 9.0x with Novell SDK vol 4.
  91.  
  92.  
  93. Disclaimer:
  94. ===========
  95.  
  96.    Please apply all standard disclaimers here.
  97.    Seriously, this utility is meant to help you... not destroy your
  98.    environment or waste your user's time.
  99.  
  100.    This utility uses only standard API calls from official Novell SDK
  101.    releases and is compiled using Microsoft Visual C/C++ version 1.5.
  102.    Large Memory model.
  103.  
  104.    If you find bugs, then let me know.  Otherwise, I can't fix them.
  105.  
  106.    If you wish to include any of these utilities found in this ZIP file
  107.    in a publication, you must obtain written permission first.  Thank You
  108.  
  109.  
  110. How to Install:
  111. ===============
  112.  
  113. The below instructions assume:
  114.    . Drive letter F: is pointing to the SYS:\ subdirectory on the same
  115.      server that your helpdesk staff are located on.  This same server
  116.      will be running the N4PASS.NLM utility.
  117.    . It is suggested that you do use the subdirectory name of SYS:\N4PASS
  118.      unless your security policy or storage requirements require a different
  119.      location.  If using a different location, make the necessary path
  120.      changes to all references below and in the N4PASS.CFG file.
  121.    . Utilities are unpacked onto a diskette in Drive A:.
  122.    . It is very highly suggested that the user account that N4Pass.NLM
  123.      will use to login to the network is an admin-equivalent.  If the
  124.      account is not, then the account must have sufficient ACL to change
  125.      user passwords and File System rights starting at the server's
  126.      SYS:\N4PASS subdirectory.
  127.      I believe, if the NLM account is not an Admin equal, then they
  128.      will need:
  129.          All objects rights except Supervisor.
  130.          All property rights including Supervisor.
  131.          Object trustees (ACL) grant only Read and Compare.
  132.      Its simply alot better to have the NLM use an admin-equal account.
  133.      For security... in summary:
  134.          The account that the .NLM will use should be an admin-equal.
  135.          The accounts that the Helpdesk staff use are 'normal' accounts.
  136.             (no special ACL rights are needed)
  137.      
  138.  
  139. Make the appropiate changes in the commands below if your environment is
  140. different.
  141.  
  142.    1. Copy the N4PASS utility to the network server.
  143.  
  144.       F:
  145.       MD F:\N4PASS
  146.       MD F:\N4PASS\PASSWORD
  147.       COPY A:\N4PASS.NLM F:\N4PASS
  148.       COPY A:\N4PASS.CFG F:\N4PASS
  149.       COPY A:\N4PASS.EXE F:\N4PASS\PASSWORD
  150.       COPY A:\N4PASS.EXE F:\N4PASS\PASSWORD\N4PASSVB.EXE
  151.        
  152.    2. Setup security (trustee access rights) for the helpdesk staff.
  153.  
  154.       SYS:\N4PASS
  155.          - No helpdesk staff should be able to 'read' from this
  156.            subdirectory so it is suggested that you do not provide any
  157.            trustee rights to this directory.  Further, since a password
  158.            is kept in the N4PASS.CFG in this directory, it is very
  159.            strongly suggested that you verify that no one has read access.
  160.          - A file named N4PASS.LOG will be created in this subdirectory
  161.            by the N4PASS.NLM app.
  162.  
  163.       SYS:\N4PASS\PASSWORD
  164.          - HelpDesk staff will be using this directory to 'execute' the
  165.            N4PASS.EXE utility and it will also be used as a 
  166.            'ScanDirectory' for communication between N4PASS.EXE
  167.            running on the workstation and the N4PASS.NLM running on the
  168.            server.
  169.  
  170.            Rights needed by helpdesk staff to this subdirectory are:
  171.            Create   - create inquire / password change requests.
  172.            Read     - execute n4pass.exe, and read results from N4PASS.NLM.
  173.            Erase    - erase the results when read.
  174.            FileScan - your Windows app may need this.
  175.            The command to setup trustee rights for a user is:
  176.              RIGHTS SYS:\N4PASS\PASSWORD C R E F /NAME=HelpDeskUserObjectName
  177.          - It is suggested that this subdirectory by 'FLAG'ged as 'Purge'
  178.            immediate, so that the request/result file will be purged as
  179.            soon as they are erased.
  180.            The command to set this is:   FLAG SYS:\N4PASS\PASSWORD P /DO
  181.  
  182.    3. Configure the N4PASS.CFG file.
  183.  
  184.       In the SYS:\N4PASS subdirectory, there is a N4PASS.CFG file, that 
  185.       you will need to configure.
  186.       Specifically, you will need to ensure that the settings for the
  187.       Admin-equal and password are correct.
  188.       Also, verify that you set the value for the 'Seed' between 0 and
  189.       10000.   This same value will be used later when configuring the
  190.       (client) Windows workstation running N4PASS.EXE.
  191.  
  192.       For additional security:  (if you don't like setting the admin-equal
  193.       object name and its password in the text file N4PASS.CFG.)
  194.          - Set the 'network address restrictions' so that this account can
  195.            be used only be the server network address only.   The easiest
  196.            method to do this is:
  197.            Load N4pass.Nlm, wait for it to login, Load Monitor, select
  198.            Connection Information, move the cursor to the account name
  199.            that you are using, and press Enter.  The network address
  200.            should then be displayed.
  201.  
  202.    4. At the : console prompt on the Netware 4.10 server.
  203.  
  204.       Type at this : console prompt:
  205.  
  206.       LOAD SYS:\N4PASS\N4PASS
  207.  
  208.       When loaded it should create a new 'process' screen called N4PASS.
  209.       (BTW: Use CTRL-ESC to rotate thru the different Netware screens.)
  210.  
  211.       If are not using the SYS:\N4PASS subdirectory for the 'base' of the
  212.       .NLM, then you will need to specify the subdirectory as the 1st 
  213.       parameter in the 'load' line.  For example, if you want the
  214.       N4PASS.NLM to load from the subdirectory VOL1:\NLM-UTIL, then you
  215.       would use:      LOAD VOL1:\NLM-UTIL\N4PASS VOL1:\NLM-UTIL
  216.  
  217.    5. Setting up N4PASS.EXE on the Window's based workstation.
  218.  
  219.       Execute Windows 3.10 or later.  You will need a NDS connection to
  220.       the server.  (Use VLMs or the Novell Client32 if using Windows95)
  221.  
  222.       Create a new program group in your preferred 'program group':
  223.  
  224.       Description:         HelpDesk user Inquiry
  225.       Command Line:        F:\N4PASS\PASSWORD\N4PASS.EXE /S=SeedValue
  226.         (SeedValue must the same value that you used in N4PASS.CFG)
  227.       Working Directory:   F:\N4PASS\PASSWORD
  228.  
  229.       Save the 'Program Items'.
  230.  
  231.       Command parameters:
  232.          /D=     specify scan directory.  Normally, sys:\n4pass\password
  233.                 (you may have to use this parameter if client is Windows95)
  234.          /TI=    sets of 15seconds for 'time out' message.  The default is 2,
  235.              which equals 30 seconds.  If your tree is large, or you receive
  236.              alot of 'no response from search request' messages, then, you
  237.              will need to increase this value.
  238.              Valid range is from 1 to 5000.
  239.          /S=    Seed value.  The value must match the seed setting in the
  240.              n4pass.cfg file.   If the value does not match the setting
  241.              in the .cfg file, then, the new password for the 'resetted'
  242.              user will not match what the N4Pass screen says.  This will
  243.              basically, yield in a 'Access Denied' on the user trying to
  244.              login.  You (Admin) will then need to look in the N4Pass.Log
  245.              file, to see what the user's password was actually changed to.
  246.              (So, verify that the Seed value is the same.)
  247.          /Specify   - allow the helpdesk to specify the new password.
  248.              You must change the default setting for this in the n4pass.cfg
  249.              file.  (see AllowSpecifyNewPassword setting)
  250.  
  251.    6. Miscellaneous items to check.
  252.  
  253.       Verify that you have 'Intruder Detection' turned on for the containers
  254.       that your user accounts are in.  If you do not, then it makes your
  255.       system more open to 'brute force' password attack.
  256.  
  257.    7. Installation is done.
  258.  
  259.       You will not need to UNLOAD/LOAD N4PASS.NLM unless you make changes
  260.       to the N4PASS.CFG file.  If you wish, you may want to add the LOAD
  261.       line to your SYS:\SYSTEM\AUTOEXEC.NCF file.
  262.  
  263.       The helpdesk staff can now execute the N4PASS.EXE utility to view
  264.       user information and issue password changes.
  265.  
  266.  
  267.  
  268. N4PASS.EXE Notes:  (Also, usefull info for the Helpdesk person)
  269. ===============================================================
  270.  
  271.    For the 'search' prompt, you can type in the 'short' name
  272.    of the network user to search for.  In other words, you do not need to
  273.    type in the full network name of the user.  
  274.  
  275.    Wildcard (*) is supported.
  276.    For example,  DCOL*,  will return a list of all users with the
  277.    network name starting with the letters DCOL.
  278.    If you know the users last name, you can always use a search text
  279.    such as  *SMITH*  to return a list of all users with the word 'Smith'
  280.    in their (common) network name.
  281.  
  282.    The Helpdesk must type in their personal network password at the
  283.    HelpDesk verify prompt when wanting to change the endusers password.
  284.  
  285.    When the Helpdesk staff, resets a enduser's password, it is meant as a
  286.    temporary password.  This is just like when you (as Admin) set a
  287.    enduser's password, their password will expire, so that they will be
  288.    prompted for a new password when they login.
  289.    (One way to test this, is to do an inquire on the person after resetting
  290.    their password, and you can see that their password expire date is set
  291.    to an already past date.)
  292.  
  293.  
  294.  
  295. How is the password calculated:
  296. ===============================
  297.  
  298.    The password display from a 'password change' request is not sent over
  299.    the network wire between the server and the client.  Instead, the client
  300.    (N4PASS.EXE) and server (N4PASS.NLM) use a common calculation with
  301.    multiple variables to create the password.
  302.  
  303.    The variables that go into a password are:
  304.        1. Month
  305.        2. Day
  306.        3. FileName of 'request' file.
  307.        4. Requester (helpdesk) object name.
  308.        5. User object name.
  309.        6. Seed Number.
  310.    Variable #3 can be only found by a network snifer device on the network
  311.    wire or another helpdesk workstation.
  312.    Variable #6 is set by you when configuring N4PASS.EXE on the
  313.    workstation and in the N4PASS.CFG (which noone should have read
  314.    access too) it is 'relatively' safe.
  315.    Also, since, the HelpDesk person should already have the user on the
  316.    phone, and the user should be then logging in under the 'temporary'
  317.    generated password and then changing to a permanent password, then
  318.    the 'time of exposure' should be short.
  319.  
  320.    The password characters are composed of  0 thru 9  and  A thru F.
  321.  
  322.  
  323. Futures: (planned)
  324. ==================
  325.  
  326.    Whats new in version 1.0:
  327.  
  328.    .  When n4pass.nlm changes the user's password, it will also reset
  329.       the Intruder Lockout.
  330.  
  331.    Whats new in version 1.1:  Nov 31, 1995
  332.  
  333.    .  Add a 'prefix' password for sites that need a greater than 5
  334.       character password.
  335.  
  336.    Whats new in version 1.2:  Dec 31, 1995
  337.  
  338.    .  Added the capability of N4Pass to use a password file.  With this
  339.       additional values are possible when setting passwords.
  340.    .  Added 'Add 1 Grace Login' button.
  341.    .  It was found, that DSAPI.NLM needs to be loaded before loading
  342.       N4PASS.NLM.  The newer .NLM will autoload DSAPI.NLM and CLIB.NLM
  343.       if not already loaded.
  344.    .  Increased the file-communication timeout to 15 seconds.  Basically,
  345.       the n4pass.exe will now wait for 15 seconds before it will display
  346.       a dialog saying that it can not communicate with the n4pass.nlm.
  347.  
  348.    Whats new in version 1.25:  March 31, 1996
  349.  
  350.    .  Changed file handling done by N4PASS.NLM.
  351.    .  Added code to to force unload of N4PASS.NLM if timeout occurs during
  352.       normal unload of N4PASS.NLM.
  353.    .  Added date/time stamp so that the admin can see exactly the time length
  354.       consumed for different activities.  DebugMode must be set to Yes.
  355.    .  Created Visual Basic N4PASSVB.EXE.  This or the default N4PASS.EXE can
  356.       be used by the admin.   Download N4PA-VB.EXE from website.
  357.       http://www.fastlane.net/homepages/dcollins
  358.     
  359.    Whats new in version 1.26:  April 31, 1996
  360.  
  361.    .  The TimeOut variable is now settable in the command line parameter
  362.       when running the N4PASSVB.EXE client.
  363.       (This setting is for 10k user and larger sites)
  364.    .  The admin can now specify in the N4PASS.CFG file by using the
  365.       configuration noun ContainerSearchList, which containers can be
  366.       searched (and all below) for users.
  367.       (This setting is for 10k user and larger sites)
  368.  
  369.     
  370.    Whats new in version 1.3:  December 31, 1996
  371.  
  372.    .  Removed N4PASS.EXE.  Renamed N4PASSVB.EXE to N4PASS.EXE.
  373.    .  Add capability for the Helpdesk user to specify the new password,
  374.       when doing a 'reset password' procedure.
  375.    .  Alias objects are now supported.  Previous versions could not
  376.       'wildcard' search for alias objects.
  377.    .  Have added 'base object' checking.  This means that the helpdesk
  378.       can only specify objects that are a 'user' or an alias object
  379.       to a 'user' object.
  380.  
  381.    Whats new in version 1.3:  February 1, 1997
  382.  
  383.    .  Fixed bug in reporting if the user was 'Intruder Lockout' or not.
  384.       N4Pass.EXE (new) never reported that it was locked out.
  385.    .  Received a message that N4Pass.Exe does not work with MS NDS on
  386.       Windows95.   Hmm.  I need to find out why.  But, from what I heard
  387.       the MS NDS does not support NDS very well, so, may have stumbled
  388.       across something that MS NDS doesn't like.
  389.  
  390.    Whats new 
  391.  
  392.    .  ?
  393.  
  394.  
  395. Workstation Requirements:
  396. =========================
  397.  
  398.    . DOS 5.0 or later.
  399.    . Novell VLM (network requestor) logged into a Netware 4.1 server.
  400.      It must be a NDS (Netware Directory Services) connection.
  401.    . Client (workstation) must run VLM 1.2 or later.
  402.      N4Pass.EXE does appear to work on a Windows95 station with the
  403.      Novell Client32 for Windows95 drivers installed.
  404.    . Helpdesk staff must have a valid password for their account.
  405.      (must not be blank)
  406.    . The Windows 3.1, 3.11 or Windows95 workstation must be running the
  407.      Netware drivers and be probably configured.
  408.    . By default N4PASS.EXE will expect the proper unicode table files
  409.      are located in the subdirectory named NLS under the current Windows
  410.      subdirectory.
  411.    . Basically, if you can run Novell's NWADMIN.EXE then you should be able
  412.      run N4PASS.EXE.
  413.      Note... however, that you will need to have the .DLL required for
  414.      Visual Basic applications.
  415.  
  416.  
  417. Server Requirements:
  418. ====================
  419.  
  420.    . Run DS.NLM version 4.89a or later.  (This is in DSENH.EXE)
  421.    . This same server should have a 'replica' of the NDS tree on it.
  422.      It is not a requirement but it will help speed up searches.
  423.    . Server patches suggested.
  424.      Note:  As of 10/15/95, you should have at least applied  DSENH.EXE,
  425.      410PT2.EXE, LOG412.EXE, RTRUP?.EXE.  All of these files can be found
  426.      in the Compuserve forum NWOSFILES's File library, and are new since the
  427.      release of Netware 4.10.  You may find that these files provide better
  428.      performance in the NDS usage and may fix some problems with NWAdmin.
  429.    . N4Pass.NLM must run on a Netware 4.10 or 4.11 server.
  430.      Normally, you will run the .NLM on one server only in a NDS tree.
  431.      If you have helpdesk staff located on a more than one server, then
  432.      you may load additional copies on the other server so the helpdesk
  433.      staff can run it on their 'home' server.
  434.    . N4PASS.NLM consumes approximately 60K of server memory.
  435.    . N4PASS.NLM will consume about .05% of CPU resource approximately
  436.      every 2 seconds peaks.
  437.    . Dec 96:  I have found no problems with using N4PASS.NLM on a server
  438.      running Novell InternetWare 4.11 or plain Netware 4.11.
  439.  
  440.  
  441. Limitations:
  442. ============
  443.  
  444.    Since it uses a file based method of communication and the contents
  445.    are not encrypted, then it is possible for someone to intercept some
  446.    keys and figure out the password.
  447.    But, for this to happen, they must know the 'seed#' value on the
  448.    Helpdesk workstation and a few other items.
  449.    On this note, if you are using a password file, then only those that
  450.    know what is in the password file will figure out the password.
  451.  
  452.    N4Pass.Exe and N4Pass.Nlm do not pass any actual passwords over the
  453.    network wire.  Also, since, only N4Pass.Nlm reads the N4Pass.Lst
  454.    then the file contents are not transmitted over the network wire.
  455.  
  456.    The exception to the above paragraph, is that if you use the '/Specify'
  457.    parameter on the N4pass.exe, and thus allow the helpdesk to specify
  458.    the new password, then, a scrambled password is sent over the wire.
  459.    This situation will pose a security problem if there is a sniffer on
  460.    segment that the helpdesk is on, and the person's account being reset
  461.    will not login soon after, so that they can assign themselves a real
  462.    password.   (The helpdesk's verify password is never sent over the
  463.    wire)
  464.  
  465.  
  466.  
  467. Thanks:
  468. =======
  469.  
  470.    Peter Kuo, who sent feedback about the beta release.
  471.    Randy Cook, Novell developer support on Compuserve forum NDEVSUP.
  472.    This utility is compiled using the Novell SDK volume 4. 
  473.  
  474.  
  475. Required Modules for N4PASS.NLM:
  476. ================================
  477.  
  478.    CLIB.NLM must be loaded.  If it is not loaded when you load n4pass.nlm,
  479.    it should autoload the CLIB.NLM app.
  480.    DSAPI.NLM must be loaded.  If it is not loaded when you load n4pass.nlm,
  481.    it should autoload the DSAPI.NLM app.
  482.  
  483.  
  484. Required Modules for N4PASS.EXE:
  485. ================================
  486.  
  487.    Windows DLLs (located in c:\windows\system) accessed by N4PASS.EXE.
  488.  
  489.         VB40016.DLL
  490.         OC25.DLL
  491.         OLE2.DLL
  492.         TYPELIB.DLL
  493.         OLE2DISP.DLL
  494.         OLE2PROX.DLL
  495.         OLE2CONV.DLL
  496.         STORAGE.DLL
  497.         COMPOBJ.DLL
  498.         OLE2.REG
  499.         OLE2NLS.DLL
  500.         STDOLE.TLB
  501.         SCP.DLL
  502.         VAEN21.OLB
  503.         CTL3DV2.DLL
  504.  
  505.    I have included these files in the N4PA-VB.ZIP file located at:
  506.    http://www.fastlane.net/homepages/dcollins
  507.  
  508.         VB40016.DLL
  509.         OC25.DLL
  510.         VAEN21.OLB
  511.         CTL3DV2.DLL
  512.  
  513.    In addition, the n4passvb.exe will need the following novell DLL
  514.    files on your system.   (If you have installed the Novell client, then
  515.    you should already have the files in your c:\windows\system directory.)
  516.  
  517.         nwnet.dll
  518.         nwlocale.dll
  519.         nwcalls.dll
  520.  
  521.  
  522.  
  523. WhoAmI:
  524. =======
  525.  
  526.    Darwin Collins, works at Dallas Area Rapid Transit in Dallas, Texas USA. 
  527.    Voice: 214-749-3022. 
  528.    Environment:  1k user base connected to Netware 4.10 servers.  
  529.  
  530.    My job pays me to be a Network Administrator.
  531.    I have been writing programs since 1980.  My first published utility
  532.    was called 'Graphic Writer' published in SoftSide in August 1982.
  533.    You could find a variety of my earlier utilities published in books 
  534.    such as 'LAN Desktop Guide To Troubleshooting' by Rick Segal, and 
  535.    'NetWare Unleashed Vol 1 and 2' from SAMS Publishing.   
  536.    My only commerical attempt, is a product called 'Office Logic Clerk',
  537.    which is a MHS-compatible (SMF-70,SMF-71) super utility (Alphapaging, 
  538.    dlists, file librarian/requestor, ...) marketed by LAN-ACES Inc. in 
  539.    Houston, TX.  800-LAN-ACES.  They have a email groupware product
  540.    called Office Logic Email which is pretty neat!
  541.  
  542.  
  543. My standard NET.CFG file for VLM 1.20 drivers is:
  544. =================================================
  545.  
  546.    preferred server=HOME
  547.    show dots = ON
  548.    file handles = 60
  549.    print header = 255
  550.    print tail = 64
  551.  
  552.    Link Driver NE2000
  553.       Protocol IPX 8137 ETHERNET_II
  554.       Frame ETHERNET_II
  555.       INT 15
  556.       PORT 340
  557.  
  558.    NETWARE DOS REQUESTER
  559.       SET STATION TIME = ON
  560.       LOAD CONN TABLE LOW = ON
  561.       CONNECTIONS = 8
  562.       LARGE INTERNET PACKETS = ON
  563.       SIGNATURE LEVEL = 1
  564.       CACHE BUFFERS = 5
  565.       CACHE BUFFER SIZE = 1436
  566.       CACHE WRITES = ON
  567.       TRUE COMMIT = OFF
  568.       PB BUFFERS = 3
  569.       PBURST READ WINDOW SIZE = 16
  570.       FIRST NETWORK DRIVE = H
  571.       SHOW DOTS = ON
  572.       NAME CONTEXT = "O=HOME"
  573.       FORCE FIRST NETWORK DRIVE = ON
  574.       LOAD LOW REDIR = ON
  575.       READ ONLY COMPATIBILITY = ON
  576.       USE DEFAULTS = OFF
  577.          VLM = CONN.VLM
  578.          VLM = IPXNCP.VLM
  579.          VLM = TRAN.VLM
  580.          VLM = SECURITY.VLM
  581.          VLM = NDS.VLM
  582.          VLM = BIND.VLM
  583.          VLM = NWP.VLM
  584.          VLM = FIO.VLM
  585.          VLM = GENERAL.VLM
  586.          VLM = REDIR.VLM
  587.          VLM = PRINT.VLM
  588.          VLM = NETX.VLM
  589.  
  590. [end]
  591.  
  592. Below is a list of error codes from Novell SDK volume 4.
  593.  
  594.  
  595. SHELL_ERROR                0x8800
  596. VLM_ERROR                  0x8800
  597. ALREADY_ATTACHED           0x8800   0  
  598.    - Attach attempted to server with valid, existing connection 
  599. INVALID_CONNECTION         0x8801   1  
  600.    - Request attempted with invalid or non-attached connection handle 
  601. DRIVE_IN_USE               0x8802   2  
  602.    - OS/2 only (NOT USED) 
  603. CANT_ADD_CDS               0x8803   3  
  604.    - Map drive attempted but unable to add new current directory structure 
  605. BAD_DRIVE_BASE             0x8804   4  
  606.    - Map drive attempted with invalid path specification 
  607. NET_READ_ERROR             0x8805   5  
  608.    - Attempt to receive from the selected transport failed 
  609. NET_RECV_ERROR             0x8805   5  
  610. UNKNOWN_NET_ERROR          0x8806   6  
  611.    - Network send attempted with an un-specific network error 
  612. SERVER_INVALID_SLOT        0x8807   7  
  613.    - Server request attempted with invalid server connection slot 
  614. BAD_SERVER_SLOT            0x8807   7  
  615. NO_SERVER_SLOTS            0x8808   8  
  616.    - Attach attempted to server with no connection slots available 
  617. NET_WRITE_ERROR            0x8809   9  
  618.    - Attempt to send on the selected transport failed 
  619. NET_SEND_ERROR             0x8809   9  
  620. SERVER_NO_ROUTE            0x880A   10 
  621.    - Attempted to find route to server where no route exists 
  622. BAD_LOCAL_TARGET           0x880B   11 - OS/2 only 
  623. TOO_MANY_REQ_FRAGS         0x880C   12 
  624.    - Attempted request with too many request fragments specified 
  625. CONNECT_LIST_OVERFLOW      0x880D   13 
  626. BUFFER_OVERFLOW            0x880E   14 
  627.    - Attempt to receive more data than the reply buffer had room for 
  628. NO_CONN_TO_SERVER          0x880F   15 
  629. NO_CONNECTION_TO_SERVER    0x880F   15 
  630.    - Attempt to get connection for a server not connected 
  631. NO_ROUTER_FOUND            0x8810   16 - OS/2 only 
  632. BAD_FUNC_ERROR             0x8811   17 
  633. INVALID_SHELL_CALL         0x8811   17 
  634.    - Attempted function call to non- existent or illegal function 
  635. NOT_SAME_CONNECTION        0x8830   48 
  636.    - Internal server request attempted accross different server connections 
  637. PRIMARY_CONNECTION_NOT_SET 0x8831   49 
  638.    - Attempt to retrieve default connection with no primary connection set 
  639. NO_PRIMARY_SET             0x8831   49 
  640. NO_CAPTURE_SET             0x8832   50 
  641. NO_CAPTURE_IN_PROGRESS     0x8832   50 
  642.    - Capture information requested on port with no capture in progress 
  643. BAD_BUFFER_LENGTH          0x8833   51 
  644. INVALID_BUFFER_LENGTH      0x8833   51 
  645.    - Used to indicate length which caller requested on a GetDNC or SetDNC was too large 
  646. NO_USER_NAME               0x8834   52 
  647. NO_NETWARE_PRINT_SPOOLER   0x8835   53 
  648.    - Capture requested without having the local print spooler installed 
  649. INVALID_PARAMETER          0x8836   54 
  650.    - Attempted function with an invalid function parameter specified 
  651. CONFIG_FILE_OPEN_FAILED    0x8837   55 - OS/2 only 
  652. NO_CONFIG_FILE             0x8838   56 - OS/2 only 
  653. CONFIG_FILE_READ_FAILED    0x8839   57 - OS/2 only 
  654. CONFIG_LINE_TOO_LONG       0x883A   58 - OS/2 only 
  655. CONFIG_LINES_IGNORED       0x883B   59 - OS/2 only 
  656. NOT_MY_RESOURCE            0x883C   60 
  657.    - Attempted request made with a parameter using foriegn resource 
  658. DAEMON_INSTALLED           0x883D   61 - OS/2 only 
  659. SPOOLER_INSTALLED          0x883E   62 
  660.    - Attempted load of print spooler with print spooler already installed 
  661. CONN_TABLE_FULL            0x883F   63 
  662. CONNECTION_TABLE_FULL      0x883F   63 
  663.    - Attempted to allocate a connection handle with no more local connection table entries 
  664. CONFIG_SECTION_NOT_FOUND   0x8840   64 - OS/2 only 
  665. BAD_TRAN_TYPE              0x8841   65 
  666. INVALID_TRANSPORT_TYPE     0x8841   65 
  667.    - Attempted function on a connection with an invalid transport selected 
  668. TDS_TAG_IN_USE             0x8842   66 - OS/2 only 
  669. TDS_OUT_OF_MEMORY          0x8843   67 - OS/2 only 
  670. TDS_INVALID_TAG            0x8844   68 
  671.    - Attempted TDS function with invalid tag 
  672. TDS_WRITE_TRUNCATED        0x8845   69 
  673.    - Attempted TDS write with buffer that exceeded buffer 
  674. NO_DIRECTORY_SERVICE_CONNECTION 0x8846   70 
  675. SERVICE_BUSY               0x8846   70 
  676.    - Attempted request made to partially asynchronous function in busy state 
  677. NO_SERVER_ERROR            0x8847   71 
  678.    - Attempted connect failed to find any servers responding 
  679. BAD_VLM_ERROR              0x8848   72 
  680.    - Attempted function call to non-existant or not-loaded overlay 
  681. NETWORK_DRIVE_IN_USE       0x8849   73 
  682.    - Attempted map to network drive that was already mapped 
  683. LOCAL_DRIVE_IN_USE         0x884A   74 
  684.    - Attempted map to local drive that was in use 
  685. NO_DRIVES_AVAILABLE        0x884B   75 
  686.    - Attempted map to next available drive when none were available 
  687. DEVICE_NOT_REDIRECTED      0x884C   76 
  688.    - The device is not redirected 
  689. NO_MORE_SFT_ENTRIES        0x884D   77 
  690.    - Maximum number of files was reached 
  691. UNLOAD_ERROR               0x884E   78 
  692.    - Attempted unload failed 
  693. IN_USE_ERROR               0x884F   79 
  694.    - Attempted re-use of already in use connection entry 
  695. TOO_MANY_REP_FRAGS         0x8850   80 
  696.    - Attempted request with too many reply fragments specified 
  697. TABLE_FULL                 0x8851   81 
  698.    - Attempted to add a name into the name table after it was full 
  699. SOCKET_NOT_OPEN            0x8852   82 
  700.    - Listen was posted on unopened socket 
  701. MEM_MGR_ERROR              0x8853   83 
  702.    - Attempted enhanced memory operation failed 
  703. SFT3_ERROR                 0x8854   84 
  704.    - An SFT3 switch occured mid-transfer 
  705. PREFERRED_NOT_FOUND        0x8855   85 
  706.    - the preferred directory server was not established but another directory server was returned 
  707. DEVICE_NOT_RECOGNIZED      0x8856   86 
  708.    - used to determine if the device is not used by VISE so pass it on to the next redirector, if any. 
  709. BAD_NET_TYPE               0x8857   87 
  710.    - the network type (Bind/NDS) does not match the server version 
  711. ERROR_OPENING_FILE         0x8858   88 
  712.    - generic open failure error, invalid path, access denied, etc.. 
  713. NO_PREFERRED_SPECIFIED     0x8859   89 
  714.    - no preferred name specified 
  715. ERROR_OPENING_SOCKET       0x885A   90 
  716.    - error opening a socket 
  717. SHELL_FAILURE              0x88FF
  718. VLM_FAILURE                0x88FF
  719.  
  720.  
  721.  Server Errors 
  722.  
  723. ERR_INSUFFICIENT_SPACE          0x8901   001 
  724. ERR_BUFFER_TOO_SMALL            0x8977   119 
  725. ERR_VOLUME_FLAG_NOT_SET         0x8978   120 the service requested, not avail. on the selected vol. 
  726. ERR_NO_ITEMS_FOUND              0x8979   121 
  727. ERR_CONN_ALREADY_TEMP           0x897a   122 
  728. ERR_CONN_ALREADY_LOGGED_IN      0x897b   123 
  729. ERR_CONN_NOT_AUTHENTICATED      0x897c   124 
  730. ERR_CONN_NOT_LOGGED_IN          0x897d   125 
  731. NCP_BOUNDARY_CHECK_FAILED       0x897e   126 
  732. ERR_LOCK_WAITING                0x897f   127 
  733. ERR_LOCK_FAIL                   0x8980   128 
  734. FILE_IN_USE_ERROR               0x8980   128 
  735. NO_MORE_FILE_HANDLES            0x8981   129 
  736. NO_OPEN_PRIVILEGES              0x8982   130 
  737. IO_ERROR_NETWORK_DISK           0x8983   131 
  738. NO_CREATE_PRIVILEGES            0x8984   132 
  739. NO_CREATE_DELETE_PRIVILEGES     0x8985   133 
  740. CREATE_FILE_EXISTS_READ_ONLY    0x8986   134 
  741. WILD_CARDS_IN_CREATE_FILE_NAME  0x8987   135 
  742. INVALID_FILE_HANDLE             0x8988   136 
  743. NO_SEARCH_PRIVILEGES            0x8989   137 
  744. NO_DELETE_PRIVILEGES            0x898A   138 
  745. NO_RENAME_PRIVILEGES            0x898B   139 
  746. NO_MODIFY_PRIVILEGES            0x898C   140 
  747. SOME_FILES_AFFECTED_IN_USE      0x898D   141 
  748. NO_FILES_AFFECTED_IN_USE        0x898E   142 
  749. SOME_FILES_AFFECTED_READ_ONLY   0x898F   143 
  750. NO_FILES_AFFECTED_READ_ONLY     0x8990   144 
  751. SOME_FILES_RENAMED_NAME_EXISTS  0x8991   145 
  752. NO_FILES_RENAMED_NAME_EXISTS    0x8992   146 
  753. NO_READ_PRIVILEGES              0x8993   147 
  754. NO_WRITE_PRIVILEGES_OR_READONLY 0x8994   148 
  755. FILE_DETACHED                   0x8995   149 
  756. SERVER_OUT_OF_MEMORY            0x8996   150 
  757. ERR_TARGET_NOT_A_SUBDIRECTORY   0x8986   150 can be changed later (note written by server people). 
  758. NO_DISK_SPACE_FOR_SPOOL_FILE    0x8997   151 
  759. VOLUME_DOES_NOT_EXIST           0x8998   152 
  760. DIRECTORY_FULL                  0x8999   153 
  761. RENAMING_ACROSS_VOLUMES         0x899A   154 
  762. BAD_DIRECTORY_HANDLE            0x899B   155 
  763. INVALID_PATH                    0x899C   156 
  764. NO_MORE_TRUSTEES                0x899C   156 
  765. NO_MORE_DIRECTORY_HANDLES       0x899D   157 
  766. INVALID_FILENAME                0x899E   158 
  767. DIRECTORY_ACTIVE                0x899F   159 
  768. DIRECTORY_NOT_EMPTY             0x89A0   160 
  769. DIRECTORY_IO_ERROR              0x89A1   161 
  770. READ_FILE_WITH_RECORD_LOCKED    0x89A2   162 
  771. ERR_TRANSACTION_RESTARTED       0x89A3   163 
  772. ERR_RENAME_DIR_INVALID          0x89A4   164 
  773. ERR_INVALID_OPENCREATE_MODE     0x89A5   165 
  774. ERR_ALREADY_IN_USE              0x89A6   166 
  775. ERR_INVALID_RESOURCE_TAG        0x89A7   167 
  776. ERR_ACCESS_DENIED               0x89A8   168 
  777. INVALID_DATA_STREAM             0x89BE   190 
  778. INVALID_NAME_SPACE              0x89BF   191 
  779. NO_ACCOUNTING_PRIVILEGES        0x89C0   192 
  780. LOGIN_DENIED_NO_ACCOUNT_BALANCE 0x89C1   193 
  781. LOGIN_DENIED_NO_CREDIT          0x89C2   194 
  782. ERR_TOO_MANY_HOLDS              0x89C3   195 
  783. ACCOUNTING_DISABLED             0x89C4   196 
  784. INTRUDER_DETECTION_LOCK         0x89C5   197 
  785. NO_CONSOLE_OPERATOR             0x89C6   198 
  786. NO_CONSOLE_PRIVILEGES           0x89C6   198 
  787. ERR_Q_IO_FAILURE                0x89D0   208 
  788. ERR_NO_QUEUE                    0x89D1   209 
  789. ERR_NO_Q_SERVER                 0x89D2   210 
  790. ERR_NO_Q_RIGHTS                 0x89D3   211 
  791. ERR_Q_FULL                      0x89D4   212 
  792. ERR_NO_Q_JOB                    0x89D5   213 
  793. ERR_NO_Q_JOB_RIGHTS             0x89D6   214 
  794. ERR_Q_IN_SERVICE                0x89D7   215 
  795. PASSWORD_NOT_UNIQUE             0x89D7   215 
  796. ERR_Q_NOT_ACTIVE                0x89D8   216 
  797. PASSWORD_TOO_SHORT              0x89D8   216 
  798. ERR_Q_STN_NOT_SERVER            0x89D9   217 
  799. LOGIN_DENIED_NO_CONNECTION      0x89D9   217 
  800. ERR_MAXIMUM_LOGINS_EXCEEDED     0x89D9   217 
  801. ERR_Q_HALTED                    0x89DA   218 
  802. UNAUTHORIZED_LOGIN_TIME         0x89DA   218 
  803. UNAUTHORIZED_LOGIN_STATION      0x89DB   219 
  804. ERR_Q_MAX_SERVERS               0x89DB   219 
  805. ACCOUNT_DISABLED                0x89DC   220 
  806. PASSWORD_HAS_EXPIRED_NO_GRACE   0x89DE   222 
  807. PASSWORD_HAS_EXPIRED            0x89DF   223 
  808. E_NO_MORE_USERS                 0x89E7   231 
  809. NOT_ITEM_PROPERTY               0x89E8   232 
  810. WRITE_PROPERTY_TO_GROUP         0x89E8   232 
  811. MEMBER_ALREADY_EXISTS           0x89E9   233 
  812. NO_SUCH_MEMBER                  0x89EA   234 
  813. NOT_GROUP_PROPERTY              0x89EB   235 
  814. NO_SUCH_SEGMENT                 0x89EC   236 
  815. PROPERTY_ALREADY_EXISTS         0x89ED   237 
  816. OBJECT_ALREADY_EXISTS           0x89EE   238 
  817. INVALID_NAME                    0x89EF   239 
  818. WILD_CARD_NOT_ALLOWED           0x89F0   240 
  819. INVALID_BINDERY_SECURITY        0x89F1   241 
  820. NO_OBJECT_READ_PRIVILEGE        0x89F2   242 
  821. NO_OBJECT_RENAME_PRIVILEGE      0x89F3   243 
  822. NO_OBJECT_DELETE_PRIVILEGE      0x89F4   244 
  823. NO_OBJECT_CREATE_PRIVILEGE      0x89F5   245 
  824. NO_PROPERTY_DELETE_PRIVILEGE    0x89F6   246 
  825. NO_PROPERTY_CREATE_PRIVILEGE    0x89F7   247 
  826. NO_PROPERTY_WRITE_PRIVILEGE     0x89F8   248 
  827. NO_FREE_CONNECTION_SLOTS        0x89F9   249 
  828. NO_PROPERTY_READ_PRIVILEGE      0x89F9   249 
  829. NO_MORE_SERVER_SLOTS            0x89FA   250 
  830. TEMP_REMAP_ERROR                0x89FA   250 
  831. INVALID_PARAMETERS              0x89FB   251 
  832. NO_SUCH_PROPERTY                0x89FB   251 
  833. ERR_NCP_NOT_SUPPORTED           0x89FB   251 
  834. INTERNET_PACKET_REQT_CANCELED   0x89FC   252 
  835. UNKNOWN_FILE_SERVER             0x89FC   252 
  836. MESSAGE_QUEUE_FULL              0x89FC   252 
  837. NO_SUCH_OBJECT                  0x89FC   252 
  838. LOCK_COLLISION                  0x89FD   253 
  839. BAD_STATION_NUMBER              0x89FD   253 
  840. INVALID_PACKET_LENGTH           0x89FD   253 
  841. UNKNOWN_REQUEST                 0x89FD   253 
  842. BINDERY_LOCKED                  0x89FE   254 
  843. TRUSTEE_NOT_FOUND               0x89FE   254 
  844. DIRECTORY_LOCKED                0x89FE   254 
  845. INVALID_SEMAPHORE_NAME_LENGTH   0x89FE   254 
  846. PACKET_NOT_DELIVERABLE          0x89FE   254 
  847. SERVER_BINDERY_LOCKED           0x89FE   254 
  848. SOCKET_TABLE_FULL               0x89FE   254 
  849. SPOOL_DIRECTORY_ERROR           0x89FE   254 
  850. SUPERVISOR_HAS_DISABLED_LOGIN   0x89FE   254 
  851. TIMEOUT_FAILURE                 0x89FE   254 
  852. BAD_PRINTER_ERROR               0x89FF   255 
  853. BAD_RECORD_OFFSET               0x89FF   255 
  854. CLOSE_FCB_ERROR                 0x89FF   255 
  855. FILE_EXTENSION_ERROR            0x89FF   255 
  856. FILE_NAME_ERROR                 0x89FF   255 
  857. HARDWARE_FAILURE                0x89FF   255 
  858. INVALID_DRIVE_NUMBER            0x89FF   255 
  859. DOS_INVALID_DRIVE               0x000F   255 
  860. INVALID_INITIAL_SEMAPHORE_VALUE 0x89FF   255 
  861. INVALID_SEMAPHORE_HANDLE        0x89FF   255 
  862. IO_BOUND_ERROR                  0x89FF   255 
  863. NO_FILES_FOUND_ERROR            0x89FF   255 
  864. NO_RESPONSE_FROM_SERVER         0x89FF   255 
  865. NO_SUCH_OBJECT_OR_BAD_PASSWORD  0x89FF   255 
  866. PATH_NOT_LOCATABLE              0x89FF   255 
  867. QUEUE_FULL_ERROR                0x89FF   255 
  868. REQUEST_NOT_OUTSTANDING         0x89FF   255 
  869. SOCKET_ALREADY_OPEN             0x89FF   255 
  870. LOCK_ERROR                      0x89FF   255 
  871.  
  872.  
  873. ERR_INSUFFICIENT_MEMORY        -150      0xFFFFFF6A, OS ERR_NO_ALLOC_SPACE is 0x96 
  874. ERR_REQUEST_UNKNOWN            -251      0xFFFFFF05, OS ERR_UNKNOWN_REQUEST is 0xFB 
  875. ERR_OF_SOME_SORT               -255      0xFFFFFF01, many OS errors are originally 0xFF 
  876.  
  877.  -301 to -399 are returned by the directory services client library 
  878. ERR_NOT_ENOUGH_MEMORY          -301      0xFFFFFED3 
  879. ERR_BAD_KEY                    -302      0xFFFFFED2 
  880. ERR_BAD_CONTEXT                -303      0xFFFFFED1 
  881. ERR_BUFFER_FULL                -304      0xFFFFFED0 
  882. ERR_LIST_EMPTY                 -305      0xFFFFFECF 
  883. ERR_BAD_SYNTAX                 -306      0xFFFFFECE 
  884. ERR_BUFFER_EMPTY               -307      0xFFFFFECD 
  885. ERR_BAD_VERB                   -308      0xFFFFFECC 
  886. ERR_EXPECTED_IDENTIFIER        -309      0xFFFFFECB 
  887. ERR_EXPECTED_EQUALS            -310      0xFFFFFECA 
  888. ERR_ATTR_TYPE_EXPECTED         -311      0xFFFFFEC9 
  889. ERR_ATTR_TYPE_NOT_EXPECTED     -312      0xFFFFFEC8 
  890. ERR_FILTER_TREE_EMPTY          -313      0xFFFFFEC7 
  891. ERR_INVALID_OBJECT_NAME        -314      0xFFFFFEC6 
  892. ERR_EXPECTED_RDN_DELIMITER     -315      0xFFFFFEC5 
  893. ERR_TOO_MANY_TOKENS            -316      0xFFFFFEC4 
  894. ERR_INCONSISTENT_MULTIAVA      -317      0xFFFFFEC3 
  895. ERR_COUNTRY_NAME_TOO_LONG      -318      0xFFFFFEC2 
  896. ERR_SYSTEM_ERROR               -319      0xFFFFFEC1 
  897. ERR_CANT_ADD_ROOT              -320      0xFFFFFEC0 
  898. ERR_UNABLE_TO_ATTACH           -321      0xFFFFFEBF 
  899. ERR_INVALID_HANDLE             -322      0xFFFFFEBE 
  900. ERR_BUFFER_ZERO_LENGTH         -323      0xFFFFFEBD 
  901. ERR_INVALID_REPLICA_TYPE       -324      0xFFFFFEBC 
  902. ERR_INVALID_ATTR_SYNTAX        -325      0xFFFFFEBB 
  903. ERR_INVALID_FILTER_SYNTAX      -326      0xFFFFFEBA 
  904. ERR_CONTEXT_CREATION           -328      0xFFFFFEB8 
  905. ERR_INVALID_UNION_TAG          -329      0xFFFFFEB7 
  906. ERR_INVALID_SERVER_RESPONSE    -330      0xFFFFFEB6 
  907. ERR_NULL_POINTER               -331      0xFFFFFEB5 
  908. ERR_NO_SERVER_FOUND            -332      0xFFFFFEB4 
  909. ERR_NO_CONNECTION              -333      0xFFFFFEB3 
  910. ERR_RDN_TOO_LONG               -334      0xFFFFFEB2 
  911. ERR_DUPLICATE_TYPE             -335      0xFFFFFEB1 
  912. ERR_DATA_STORE_FAILURE         -336      0xFFFFFEB0 
  913. ERR_NOT_LOGGED_IN              -337      0xFFFFFEAF 
  914. ERR_INVALID_PASSWORD_CHARS     -338      0xFFFFFEAE 
  915. ERR_FAILED_SERVER_AUTHENT      -339      0xFFFFFEAD 
  916. ERR_TRANSPORT                  -340      0xFFFFFEAC 
  917. ERR_NO_SUCH_SYNTAX             -341      0xFFFFFEAB 
  918. ERR_INVALID_DS_NAME            -342      0xFFFFFEAA 
  919. ERR_ATTR_NAME_TOO_LONG         -343      0xFFFFFEA9 
  920. ERR_INVALID_TDS                -344      0xFFFFFEA8 
  921. ERR_INVALID_DS_VERSION         -345      0xFFFFFEA7 
  922. ERR_UNICODE_TRANSLATION        -346      0xFFFFFEA6 
  923. ERR_SCHEMA_NAME_TOO_LONG       -347      0xFFFFFEA5 
  924. ERR_UNICODE_FILE_NOT_FOUND     -348      0xFFFFFEA4 
  925. ERR_UNICODE_ALREADY_LOADED     -349      0xFFFFFEA3 
  926. ERR_NOT_CONTEXT_OWNER          -350      0xFFFFFEA2 
  927. ERR_ATTEMPT_TO_AUTHENTICATE_0  -351      0xFFFFFEA1 
  928. ERR_NO_WRITABLE_REPLICAS       -352      0xFFFFFEA0 
  929. ERR_DN_TOO_LONG                -353      0xFFFFFE9F 
  930. ERR_RENAME_NOT_ALLOWED         -354      0xFFFFFE9E 
  931.  
  932.  -601 to -699 are returned by the directory services agent in the server 
  933. ERR_NO_SUCH_ENTRY              -601      0xFFFFFDA7 
  934. ERR_NO_SUCH_VALUE              -602      0xFFFFFDA6 
  935. ERR_NO_SUCH_ATTRIBUTE          -603      0xFFFFFDA5 
  936. ERR_NO_SUCH_CLASS              -604      0xFFFFFDA4 
  937. ERR_NO_SUCH_PARTITION          -605      0xFFFFFDA3 
  938. ERR_ENTRY_ALREADY_EXISTS       -606      0xFFFFFDA2 
  939. ERR_NOT_EFFECTIVE_CLASS        -607      0xFFFFFDA1 
  940. ERR_ILLEGAL_ATTRIBUTE          -608      0xFFFFFDA0 
  941. ERR_MISSING_MANDATORY          -609      0xFFFFFD9F 
  942. ERR_ILLEGAL_DS_NAME            -610      0xFFFFFD9E 
  943. ERR_ILLEGAL_CONTAINMENT        -611      0xFFFFFD9D 
  944. ERR_CANT_HAVE_MULTIPLE_VALUES  -612      0xFFFFFD9C 
  945. ERR_SYNTAX_VIOLATION           -613      0xFFFFFD9B 
  946. ERR_DUPLICATE_VALUE            -614      0xFFFFFD9A 
  947. ERR_ATTRIBUTE_ALREADY_EXISTS   -615      0xFFFFFD99 
  948. ERR_MAXIMUM_ENTRIES_EXIST      -616      0xFFFFFD98 
  949. ERR_DATABASE_FORMAT            -617      0xFFFFFD97 
  950. ERR_INCONSISTENT_DATABASE      -618      0xFFFFFD96 
  951. ERR_INVALID_COMPARISON         -619      0xFFFFFD95 
  952. ERR_COMPARISON_FAILED          -620      0xFFFFFD94 
  953. ERR_TRANSACTIONS_DISABLED      -621      0xFFFFFD93 
  954. ERR_INVALID_TRANSPORT          -622      0xFFFFFD92 
  955. ERR_SYNTAX_INVALID_IN_NAME     -623      0xFFFFFD91 
  956. ERR_REPLICA_ALREADY_EXISTS     -624      0xFFFFFD90 
  957. ERR_TRANSPORT_FAILURE          -625      0xFFFFFD8F 
  958. ERR_ALL_REFERRALS_FAILED       -626      0xFFFFFD8E 
  959. ERR_CANT_REMOVE_NAMING_VALUE   -627      0xFFFFFD8D 
  960. ERR_OBJECT_CLASS_VIOLATION     -628      0xFFFFFD8C 
  961. ERR_ENTRY_IS_NOT_LEAF          -629      0xFFFFFD8B 
  962. ERR_DIFFERENT_TREE             -630      0xFFFFFD8A 
  963. ERR_ILLEGAL_REPLICA_TYPE       -631      0xFFFFFD89 
  964. ERR_SYSTEM_FAILURE             -632      0xFFFFFD88 
  965. ERR_INVALID_ENTRY_FOR_ROOT     -633      0xFFFFFD87 
  966. ERR_NO_REFERRALS               -634      0xFFFFFD86 
  967. ERR_REMOTE_FAILURE             -635      0xFFFFFD85 
  968. ERR_UNREACHABLE_SERVER         -636      0XFFFFFD84 
  969. ERR_PREVIOUS_MOVE_IN_PROGRESS  -637      0XFFFFFD83 
  970. ERR_NO_CHARACTER_MAPPING       -638      0XFFFFFD82 
  971. ERR_INCOMPLETE_AUTHENTICATION  -639      0XFFFFFD81 
  972. ERR_INVALID_CERTIFICATE        -640      0xFFFFFD80 
  973. ERR_INVALID_REQUEST            -641      0xFFFFFD7F 
  974. ERR_INVALID_ITERATION          -642      0xFFFFFD7E 
  975. ERR_SCHEMA_IS_NONREMOVABLE     -643      0xFFFFFD7D 
  976. ERR_SCHEMA_IS_IN_USE           -644      0xFFFFFD7C 
  977. ERR_CLASS_ALREADY_EXISTS       -645      0xFFFFFD7B 
  978. ERR_BAD_NAMING_ATTRIBUTES      -646      0xFFFFFD7A 
  979. ERR_NOT_ROOT_PARTITION         -647      0xFFFFFD79 
  980. ERR_INSUFFICIENT_STACK         -648      0xFFFFFD78 
  981. ERR_INSUFFICIENT_BUFFER        -649      0xFFFFFD77 
  982. ERR_AMBIGUOUS_CONTAINMENT      -650      0xFFFFFD76 
  983. ERR_AMBIGUOUS_NAMING           -651      0xFFFFFD75 
  984. ERR_DUPLICATE_MANDATORY        -652      0xFFFFFD74 
  985. ERR_DUPLICATE_OPTIONAL         -653      0xFFFFFD73 
  986. ERR_PARTITION_BUSY             -654      0XFFFFFD72 
  987. ERR_MULTIPLE_REPLICAS          -655      0xFFFFFD71 
  988. ERR_CRUCIAL_REPLICA            -656      0xFFFFFD70 
  989. ERR_SCHEMA_SYNC_IN_PROGRESS    -657      0xFFFFFD6F 
  990. ERR_SKULK_IN_PROGRESS          -658      0xFFFFFD6E 
  991. ERR_TIME_NOT_SYNCHRONIZED      -659      0xFFFFFD6D 
  992. ERR_RECORD_IN_USE              -660      0xFFFFFD6C 
  993. ERR_DS_VOLUME_NOT_MOUNTED      -661      0xFFFFFD6B 
  994. ERR_DS_VOLUME_IO_FAILURE       -662      0xFFFFFD6A 
  995. ERR_DS_LOCKED                  -663      0xFFFFFD69 
  996. ERR_OLD_EPOCH                  -664      0xFFFFFD68 
  997. ERR_NEW_EPOCH                  -665      0xFFFFFD67 
  998. ERR_INCOMPATIBLE_DS_VERSION    -666      0xFFFFFD66 
  999. ERR_PARTITION_ROOT             -667      0xFFFFFD65 
  1000. ERR_ENTRY_NOT_CONTAINER        -668      0xFFFFFD64 
  1001. ERR_FAILED_AUTHENTICATION      -669      0xFFFFFD63 
  1002. ERR_INVALID_CONTEXT            -670      0xFFFFFD62 
  1003. ERR_NO_SUCH_PARENT             -671      0xFFFFFD61 
  1004. ERR_NO_ACCESS                  -672      0xFFFFFD60 
  1005. ERR_REPLICA_NOT_ON             -673      0xFFFFFD5F 
  1006. ERR_INVALID_NAME_SERVICE       -674      0xFFFFFD5E 
  1007. ERR_INVALID_TASK               -675      0xFFFFFD5D 
  1008. ERR_INVALID_CONN_HANDLE        -676      0xFFFFFD5C 
  1009. ERR_INVALID_IDENTITY           -677      0xFFFFFD5B 
  1010. ERR_DUPLICATE_ACL              -678      0xFFFFFD5A 
  1011. ERR_PARTITION_ALREADY_EXISTS   -679      0xFFFFFD59 
  1012. ERR_TRANSPORT_MODIFIED         -680      0xFFFFFD58 
  1013. ERR_ALIAS_OF_AN_ALIAS          -681      0xFFFFFD57 
  1014. ERR_AUDITING_FAILED            -682      0xFFFFFD56 
  1015. ERR_INVALID_API_VERSION        -683      0xFFFFFD55 
  1016. ERR_SECURE_NCP_VIOLATION       -684      0xFFFFFD54 
  1017. ERR_MOVE_IN_PROGRESS           -685      0xFFFFFD53 
  1018. ERR_NOT_LEAF_PARTITION         -686      0xFFFFFD52 
  1019. ERR_CANNOT_ABORT               -687      0xFFFFFD51 
  1020. ERR_CACHE_OVERFLOW             -688      0xFFFFFD50 
  1021. ERR_INVALID_SUBORDINATE_COUNT  -689      0xFFFFFD4F 
  1022. ERR_INVALID_RDN                -690      0xFFFFFD4E 
  1023. ERR_MOD_TIME_NOT_CURRENT       -691      0xFFFFFD4D 
  1024. ERR_INCORRECT_BASE_CLASS       -692      0xFFFFFD4C 
  1025. ERR_MISSING_REFERENCE          -693      0xFFFFFD4B 
  1026. ERR_LOST_ENTRY                 -694      0xFFFFFD4A 
  1027. ERR_AGENT_ALREADY_REGISTERED   -695      0xFFFFFD49 
  1028. ERR_DS_LOADER_BUSY             -696      0xFFFFFD48 
  1029. ERR_DS_CANNOT_RELOAD           -697      0xFFFFFD47 
  1030. ERR_REPLICA_IN_SKULK           -698      0xFFFFFD46 
  1031. ERR_FATAL                      -699      0xFFFFFD45 
  1032. ERR_OBSOLETE_API               -700      0xFFFFFD44 
  1033. ERR_SYNCHRONIZATION_DISABLED   -701      0xFFFFFD43 
  1034. ERR_INVALID_PARAMETER          -702      0xFFFFFD42 
  1035. ERR_DUPLICATE_TEMPLATE         -703      0xFFFFFD41 
  1036. ERR_NO_MASTER_REPLICA          -704      0xFFFFFD40 
  1037. ERR_DUPLICATE_CONTAINMENT      -705      0xFFFFFD3F 
  1038.  
  1039. ---------------------------------------------------------------------------
  1040.  * -001 to -255 are OS Errors returned through directory services
  1041.  
  1042.  
  1043. DSERR_INSUFFICIENT_SPACE             -001      FFFFFFFF 
  1044. DSERR_BUFFER_TOO_SMALL               -119      FFFFFF89 
  1045. DSERR_VOLUME_FLAG_NOT_SET            -120      FFFFFF88 
  1046. DSERR_NO_ITEMS_FOUND                 -121      FFFFFF87 
  1047. DSERR_CONN_ALREADY_TEMPORARY         -122      FFFFFF86 
  1048. DSERR_CONN_ALREADY_LOGGED_IN         -123      FFFFFF85 
  1049. DSERR_CONN_NOT_AUTHENTICATED         -124      FFFFFF84 
  1050. DSERR_CONN_NOT_LOGGED_IN             -125      FFFFFF83 
  1051. DSERR_NCP_BOUNDARY_CHECK_FAILED      -126      FFFFFF82 
  1052. DSERR_LOCK_WAITING                   -127      FFFFFF81 
  1053. DSERR_LOCK_FAIL                      -128      FFFFFF80 
  1054. DSERR_OUT_OF_HANDLES                 -129      FFFFFF7F 
  1055. DSERR_NO_OPEN_PRIVILEGE              -130      FFFFFF7E 
  1056. DSERR_HARD_IO_ERROR                  -131      FFFFFF7D 
  1057. DSERR_NO_CREATE_PRIVILEGE            -132      FFFFFF7C 
  1058. DSERR_NO_CREATE_DELETE_PRIV          -133      FFFFFF7B 
  1059. DSERR_R_O_CREATE_FILE                -134      FFFFFF7A 
  1060. DSERR_CREATE_FILE_INVALID_NAME       -135      FFFFFF79 
  1061. DSERR_INVALID_FILE_HANDLE            -136      FFFFFF78 
  1062. DSERR_NO_SEARCH_PRIVILEGE            -137      FFFFFF77 
  1063. DSERR_NO_DELETE_PRIVILEGE            -138      FFFFFF76 
  1064. DSERR_NO_RENAME_PRIVILEGE            -139      FFFFFF75 
  1065. DSERR_NO_SET_PRIVILEGE               -140      FFFFFF74 
  1066. DSERR_SOME_FILES_IN_USE              -141      FFFFFF73 
  1067. DSERR_ALL_FILES_IN_USE               -142      FFFFFF72 
  1068. DSERR_SOME_READ_ONLY                 -143      FFFFFF71 
  1069. DSERR_ALL_READ_ONLY                  -144      FFFFFF70 
  1070. DSERR_SOME_NAMES_EXIST               -145      FFFFFF6F 
  1071. DSERR_ALL_NAMES_EXIST                -146      FFFFFF6E 
  1072. DSERR_NO_READ_PRIVILEGE              -147      FFFFFF6D 
  1073. DSERR_NO_WRITE_PRIVILEGE             -148      FFFFFF6C 
  1074. DSERR_FILE_DETACHED                  -149      FFFFFF6B 
  1075. DSERR_NO_ALLOC_SPACE                 -150      FFFFFF6A 
  1076. DSERR_TARGET_NOT_A_SUBDIR            -150      FFFFFF6A 
  1077. DSERR_NO_SPOOL_SPACE                 -151      FFFFFF69 
  1078. DSERR_INVALID_VOLUME                 -152      FFFFFF68 
  1079. DSERR_DIRECTORY_FULL                 -153      FFFFFF67 
  1080. DSERR_RENAME_ACROSS_VOLUME           -154      FFFFFF66 
  1081. DSERR_BAD_DIR_HANDLE                 -155      FFFFFF65 
  1082. DSERR_INVALID_PATH                   -156      FFFFFF64 
  1083. DSERR_NO_SUCH_EXTENSION              -156      FFFFFF64 
  1084. DSERR_NO_DIR_HANDLES                 -157      FFFFFF63 
  1085. DSERR_BAD_FILE_NAME                  -158      FFFFFF62 
  1086. DSERR_DIRECTORY_ACTIVE               -159      FFFFFF61 
  1087. DSERR_DIRECTORY_NOT_EMPTY            -160      FFFFFF60 
  1088. DSERR_DIRECTORY_IO_ERROR             -161      FFFFFF5F 
  1089. DSERR_IO_LOCKED                      -162      FFFFFF5E 
  1090. DSERR_TRANSACTION_RESTARTED          -163      FFFFFF5D 
  1091. DSERR_RENAME_DIR_INVALID             -164      FFFFFF5C 
  1092. DSERR_INVALID_OPENCREATE_MODE        -165      FFFFFF5B 
  1093. DSERR_ALREADY_IN_USE                 -166      FFFFFF5A 
  1094. DSERR_INVALID_RESOURCE_TAG           -167      FFFFFF59 
  1095. DSERR_ACCESS_DENIED                  -168      FFFFFF58 
  1096. DSERR_INVALID_DATA_STREAM            -190      FFFFFF42 
  1097. DSERR_INVALID_NAME_SPACE             -191      FFFFFF41 
  1098. DSERR_NO_ACCOUNTING_PRIVILEGES       -192      FFFFFF40 
  1099. DSERR_NO_ACCOUNT_BALANCE             -193      FFFFFF3F 
  1100. DSERR_CREDIT_LIMIT_EXCEEDED          -194      FFFFFF3E 
  1101. DSERR_TOO_MANY_HOLDS                 -195      FFFFFF3D 
  1102. DSERR_ACCOUNTING_DISABLED            -196      FFFFFF3C 
  1103. DSERR_LOGIN_LOCKOUT                  -197      FFFFFF3B 
  1104. DSERR_NO_CONSOLE_RIGHTS              -198      FFFFFF3A 
  1105. DSERR_Q_IO_FAILURE                   -208      FFFFFF30 
  1106. DSERR_NO_QUEUE                       -209      FFFFFF2F 
  1107. DSERR_NO_Q_SERVER                    -210      FFFFFF2E 
  1108. DSERR_NO_Q_RIGHTS                    -211      FFFFFF2D 
  1109. DSERR_Q_FULL                         -212      FFFFFF2C 
  1110. DSERR_NO_Q_JOB                       -213      FFFFFF2B 
  1111. DSERR_NO_Q_JOB_RIGHTS                -214      FFFFFF2A 
  1112. DSERR_UNENCRYPTED_NOT_ALLOWED        -214      FFFFFF2A 
  1113. DSERR_Q_IN_SERVICE                   -215      FFFFFF29 
  1114. DSERR_DUPLICATE_PASSWORD             -215      FFFFFF29 
  1115. DSERR_Q_NOT_ACTIVE                   -216      FFFFFF28 
  1116. DSERR_PASSWORD_TOO_SHORT             -216      FFFFFF28 
  1117. DSERR_Q_STN_NOT_SERVER               -217      FFFFFF27 
  1118. DSERR_MAXIMUM_LOGINS_EXCEEDED        -217      FFFFFF27 
  1119. DSERR_Q_HALTED                       -218      FFFFFF26 
  1120. DSERR_BAD_LOGIN_TIME                 -218      FFFFFF26 
  1121. DSERR_Q_MAX_SERVERS                  -219      FFFFFF25 
  1122. DSERR_NODE_ADDRESS_VIOLATION         -219      FFFFFF25 
  1123. DSERR_LOG_ACCOUNT_EXPIRED            -220      FFFFFF24 
  1124. DSERR_BAD_PASSWORD                   -222      FFFFFF22 
  1125. DSERR_PASSWORD_EXPIRED               -223      FFFFFF21 
  1126. DSERR_NO_LOGIN_CONN_AVAILABLE        -224      FFFFFF20 
  1127. DSERR_WRITE_TO_GROUP_PROPERTY        -232      FFFFFF18 
  1128. DSERR_MEMBER_ALREADY_EXISTS          -233      FFFFFF17 
  1129. DSERR_NO_SUCH_MEMBER                 -234      FFFFFF16 
  1130. DSERR_PROPERTY_NOT_GROUP             -235      FFFFFF15 
  1131. DSERR_NO_SUCH_VALUE_SET              -236      FFFFFF14 
  1132. DSERR_PROPERTY_ALREADY_EXISTS        -237      FFFFFF13 
  1133. DSERR_OBJECT_ALREADY_EXISTS          -238      FFFFFF12 
  1134. DSERR_ILLEGAL_NAME                   -239      FFFFFF11 
  1135. DSERR_ILLEGAL_WILDCARD               -240      FFFFFF10 
  1136. DSERR_BINDERY_SECURITY               -241      FFFFFF0F 
  1137. DSERR_NO_OBJECT_READ_RIGHTS          -242      FFFFFF0E 
  1138. DSERR_NO_OBJECT_RENAME_RIGHTS        -243      FFFFFF0D 
  1139. DSERR_NO_OBJECT_DELETE_RIGHTS        -244      FFFFFF0C 
  1140. DSERR_NO_OBJECT_CREATE_RIGHTS        -245      FFFFFF0B 
  1141. DSERR_NO_PROPERTY_DELETE_RIGHTS      -246      FFFFFF0A 
  1142. DSERR_NO_PROPERTY_CREATE_RIGHTS      -247      FFFFFF09 
  1143. DSERR_NO_PROPERTY_WRITE_RIGHTS       -248      FFFFFF08 
  1144. DSERR_NO_PROPERTY_READ_RIGHTS        -249      FFFFFF07 
  1145. DSERR_TEMP_REMAP                     -250      FFFFFF06 
  1146. DSERR_UNKNOWN_REQUEST                -251      FFFFFF05 
  1147. DSERR_NO_SUCH_PROPERTY               -251      FFFFFF05 
  1148. DSERR_MESSAGE_QUEUE_FULL             -252      FFFFFF04 
  1149. DSERR_TARGET_ALREADY_HAS_MSG         -252      FFFFFF04 
  1150. DSERR_NO_SUCH_OBJECT                 -252      FFFFFF04 
  1151. DSERR_BAD_STATION_NUMBER             -253      FFFFFF03 
  1152. DSERR_BINDERY_LOCKED                 -254      FFFFFF02 
  1153. DSERR_DIR_LOCKED                     -254      FFFFFF02 
  1154. DSERR_SPOOL_DELETE                   -254      FFFFFF02 
  1155. DSERR_TRUSTEE_NOT_FOUND              -254      FFFFFF02 
  1156. DSERR_HARD_FAILURE                   -255      FFFFFF01 
  1157. DSERR_FILE_NAME                      -255      FFFFFF01 
  1158. DSERR_FILE_EXISTS                    -255      FFFFFF01 
  1159. DSERR_CLOSE_FCB                      -255      FFFFFF01 
  1160. DSERR_IO_BOUND                       -255      FFFFFF01 
  1161. DSERR_NO_SPOOL_FILE                  -255      FFFFFF01 
  1162. DSERR_BAD_SPOOL_PRINTER              -255      FFFFFF01 
  1163. DSERR_BAD_PARAMETER                  -255      FFFFFF01 
  1164. DSERR_NO_FILES_FOUND                 -255      FFFFFF01 
  1165. DSERR_NO_TRUSTEE_CHANGE_PRIV         -255      FFFFFF01 
  1166. DSERR_TARGET_NOT_LOGGED_IN           -255      FFFFFF01 
  1167. DSERR_TARGET_NOT_ACCEPTING_MSGS      -255      FFFFFF01 
  1168. DSERR_MUST_FORCE_DOWN                -255      FFFFFF01 
  1169.    
  1170.